"""

***数据库类****

"""


#导入mysql
import  pymysql

#md5加密
import hashlib

#导入配置文件
from settings import DB_HOST,DB_NAME,DB_USER,DB_PASSWORD

#数据密码加密方法
def make_password(password):

    #实例化md5对象
    md5 =hashlib.md5()

    #转码操作
    sign_utf8 = str(password).encode(encoding='utf-8')

    #加密操作 转成随机码
    md5.update(sign_utf8)

    #返回密文
    return md5.hexdigest()



#创建实例
class Db:
    #初始化
    def __init__(self):

        #链接数据库  self作用数据库内部调用
        self.conm = pymysql.connect(host=DB_HOST,
                               user = DB_USER,
                               password = DB_PASSWORD,
                               db = DB_NAME,
                               charset='utf8',
                               cursorclass=pymysql.cursors.DictCursor ,  #吧元组转成键值对
                               )

    # 删除
    def delete(self, sql):
        # 创建游标
        self.cursor = self.conm.cursor()
        # 执行sql语句
        self.cursor.execute(sql)
        # 提交sql
        self.conm.commit()

        return 'delete ok'


    #插入方法
    def insert(self,sql):

        #创建游标
        self.cursor = self.conm.cursor()
        #执行sql语句
        self.cursor.execute(sql)
        #提交sql
        self.conm.commit()

        return 'isnert ok'

    #修改操作
    def update(self,sql):
        # 创建游标
        self.cursor = self.conm.cursor()
        # 执行sql语句
        self.cursor.execute(sql)
        # 提交sql
        self.conm.commit()

        return 'update ok'


    #查询方法  单个数据
    def get_one(self,sql):

        # 创建游标
        self.cursor = self.conm.cursor()
        # 执行sql语句
        self.cursor.execute(sql)
        # 获取数据
        res = self.cursor.fetchone()
        #返回结果集
        return res

    #查询多个数据
    def get_all(self,sql):

        # 创建游标
        self.cursor = self.conm.cursor()
        # 执行sql语句
        self.cursor.execute(sql)
        # 获取数据
        res = self.cursor.fetchall()
        #返回结果集
        return res



    #析构方法  作用善后工作
    def __del__(self):

        #可以关闭游标
        self.cursor.close()
        #关闭数据库链接
        self.conm.close()





































